package simpleGa;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 *
 * @author Wichrowski
 */
public class Graf {

    public static final int liczbaWierzcholkow = 500;
    private List<Wiercholek> listaWierzcholkow;

    public Graf() {
        this.listaWierzcholkow = new ArrayList<>();
    }

    public List<Wiercholek> getListaWierzcholkow() {
        return listaWierzcholkow;
    }

    public void createGlownyGraf() {

        Wiercholek wiercholek;
        for (int i = 0; i < liczbaWierzcholkow; i++) {
            wiercholek = new Wiercholek();
            listaWierzcholkow.add(wiercholek);
        }

        for (int i = 0; i < liczbaWierzcholkow; i++) {
            int losujLiczbe = GA.losujLiczbe(100);
            if (losujLiczbe < 50) {
                losujLiczbe = 50;
            }
            for (int j = 49; j < losujLiczbe; j++) {
                int wylosowanaLiczba = GA.losujLiczbe(liczbaWierzcholkow - 1);
                Wiercholek wierzch1 = listaWierzcholkow.get(i);
                Wiercholek wierzch2 = listaWierzcholkow.get(wylosowanaLiczba);
                if (!wierzch1.getSasiedzi().contains(wierzch2)
                        && !wierzch2.getSasiedzi().contains(wierzch1)) {
                    wierzch1.getSasiedzi().add(wierzch2);
                    wierzch2.getSasiedzi().add(wierzch1);
                }
            }
        }
    }

    public void wypiszGraf() {
        for (int i = 0; i < liczbaWierzcholkow; i++) {
            listaWierzcholkow.get(i).wypiszSasiadow();
        }
    }
}
